package com.aiwiown.snackmq.common.constant;

/**
 * 消息常量定义
 */
public class MessageConstants {
    /**
     * 消息默认过期时间（24小时）
     */
    public static final long DEFAULT_MESSAGE_EXPIRE_TIME = 24 * 60 * 60 * 1000;
    /**
     * 当前消息版本号
     */
    public static final int CURRENT_VERSION = 1;
    /**
     * 消息最大大小（4MB）
     */
    public static final int MAX_MESSAGE_SIZE = 4 * 1024 * 1024;
    /**
     * 最大重试次数
     */
    public static final int MAX_RETRY_COUNT = 3;

    /**
     * 默认消息过期时间（毫秒）
     */
    public static final long DEFAULT_EXPIRE_TIME = 24 * 60 * 60 * 1000;

    /**
     * 默认消息优先级
     */
    public static final int DEFAULT_PRIORITY = 0;
    /**
     * 消息属性键：延迟时间
     */
    public static final String PROPERTY_DELAY_TIME = "DELAY_TIME";
    /**
     * 压缩算法：GZIP
     */
    public static final String COMPRESSION_GZIP = "GZIP";
    /**
     * 消息属性键：重试次数
     */
    public static final String PROPERTY_RETRY_COUNT = "RETRY_COUNT";
    /**
     * 压缩算法：LZ4
     */
    public static final String COMPRESSION_LZ4 = "LZ4";
    /**
     * 消息属性键：消息来源
     */
    public static final String PROPERTY_SOURCE = "SOURCE";
    /**
     * 压缩算法：SNAPPY
     */
    public static final String COMPRESSION_SNAPPY = "SNAPPY";
    /**
     * 消息属性键：消息目标
     */
    public static final String PROPERTY_TARGET = "TARGET";

    /**
     * 消息属性键：消息标签
     */
    public static final String PROPERTY_TAG = "TAG";
    /**
     * 默认压缩算法
     */
    public static final String DEFAULT_COMPRESSION = COMPRESSION_GZIP;

    private MessageConstants() {
        // 防止实例化
    }
} 